#include <iostream>

using namespace std;

// DAO Data access objecet
// insert update delete select
template <typename T>
class DAO
{
public:
    virtual void insert(T t) = 0;
    virtual void update(T t) = 0;
    virtual T del(int id) = 0;
    virtual T select(int id) = 0;
};

class User
:public DAO<User>   //继承的时候写上具体类型
{
public:
    User() {}
    ~User() {}
    void insert(User t) {}
    void update(User t) {}
    User del(int id) { User u; return u;}
    User select(int id) {User u ; return u;}
};

int main(int argc, char const *argv[])
{
    
    return 0;
}
